package qc.module.ehs.dto.taskitem;

import lombok.Data;

/**
 * 安全任务项信息DTO
 * 任务项表示指定的一个对象（单元、危险源、设备设施）在指定的频率周期中的一个周期中要执行的任务；
 * 一个任务项可能对应多个执行记录，因此任务项没有执行人、执行结果和确认人信息；
 * 
 * @author QuCheng Tech
 * @since 2024/11/13
 */
@Data
public class TaskItemInfoDto {

    /** 任务项ID */
    private String itemid ;
    
    /** 任务项名称；任务标题+时间周期文字 */
    private String itemname;

    /** 任务ID */
    private String taskid ;

    /** 任务分组ID */
    private String groupid ;

    /** 所属组织代码 */
    private String orgcode ;

    /** 任务分类名称;安全检查、设备保养、隐患治理、作业活动 */
    private String catname ;

    /** 任务大类 */
    private int tasktype ;

    /** 计划时间周期文字;文字信息 */
    private String plantmstr ;

    /** 计划开始时间;一个执行周期的开始时间 */
    private String planbegintm ;

    /** 计划截止时间;一个执行周期的截止时间 */
    private String planendtm ;

    /** 周期类型;在计划起止时间内按日、周、旬、月、季度、年为周期执行 */
    private int planfrequencytype ;

    /** 周期内计划执行次数;每个周期内要执行的次数，必须达到此数量才能设置任务状态为完成 */
    private int planfrequencycount ;

    /** 所属单元ID;目标执行单元；在督查或集中检查任务时一个分组可以检查多个单元，此时不指定单元 */
    private String unitid ;

    /** 所属单元名称 */
    private String unitname ;

    /** 设备设施ID;危险源ID、设备设施ID */
    private String facilityid ;

    /** 设备设施名称 */
    private String facilityname ;

    /** 危险源ID */
    private String hazardid ;

    /** 危险源名称 */
    private String hazardname ;

    /** 责任部门ID;责任部门关联有对应的部门责任人和安全员，对应的责任人和安全员可以看见部门的任务 */
    private int resdeptid ;

    /** 责任部门名称 */
    private String resdeptname ;

    /** 参与组员1ID */
    private int resuserid1 ;

    /** 参与组员1名称 */
    private String resusername1 ;

    /** 参与组员2ID */
    private int resuserid2 ;

    /** 参与组员2名称 */
    private String resusername2 ;

    /** 任务是否执行完成 */
    private boolean hasfinish ;

    /** 任务项是否终止/取消;标识任务项是否终止/取消 */
    private boolean hasend ;

    /**
     * 实际执行次数
     */
    private int execcount;

    /**
     * 实际完成时间;完成的时间，用于判断是否超时完成
     */
    private String execendtm;

    /**
     * 辨识危险源次数
     */
    private int execidentifycount;

    /**
     * 上报隐患次数
     */
    private int exectroublecount;

    /**
     * 最新执行开始时间;最新执行周期文字信息
     */
    private String latestexecbegintm;

    /**
     * 最新执行截止时间
     */
    private String latestexecendtm;
    /**
     * 是否为转交接收人，根据当前用户和负责部门判断当前用户是否为转交接收人
     */
    private boolean istransreceiver;
    /**
     * 转交是否接收，如果转交没有被接收不作为当前责任部门/人的任务
     */
    private boolean transhasreceive;
    /**
     * 接收确认时间，接收确认或不接收时更新该时间
     */
    private String transreceivetm;

    /**
     * 当前责任部门ID;任务在执行过程中需要其他部门协同时设置由其他部门作为责任部门
     */
    private int transdeptid;

    /**
     * 当前责任部门名称
     */
    private String transdeptname;

    /**
     * 当前责任人ID
     */
    private int transuserid;

    /**
     * 当前责任人名称
     */
    private String transusername;
    /**
     * 报告文件ID，≤0表示为空
     */
    private int rptid;
}
